Interactive Media System and Method for Dimensioning Interaction Servers in an Interactive Media System

ABSTRACT

Interaction servers for an interactive television system may be dimensioned dynamically depending on the predicted likelihood of user interactions. In one exemplary embodiment, a dimensioning system ( 60 ) assesses event likelihoods based on a number of requests for interactive media programs and categories for the interactive media programs, and dimensions one or more interaction servers ( 26 ) based on the predicted event likelihoods.

TECHNICAL FIELD

The present invention relates generally to interactive media systems that enable users to interact with media programs and, more particularly, to a method of sizing and allocating resources to handle interactions with the viewers.

BACKGROUND

Interactive media comprises media that allows the viewer to become an active participant in a media program. For example, in interactive television systems viewers may compete against contestants in a game show, place orders for advertised products, provide questions or commentaries about program content, request information about the media program or subjects of the media program, etc. In many cases, viewer feedback may effect how the program continues. An example of viewer feedback affecting media content is a real-time programming (e.g., talent shows, reality shows) in which real-time voting by viewers results in decisions that affect how the show continues.

The practice of time shifting, recording programs for later viewing, may create problems with interactive television. One problem is the possible invalidity of interaction events after the original transmission of the media program. Interaction events that occur during an original broadcast of a program may not be valid during subsequent viewings of a recording of the program. For example, voting events that take place during the original broadcast may no longer be valid when the recording is viewed. In this case, prompts to the viewer to cast votes may be annoying to many users, and some users may become frustrated when they try to cast votes.

Another problem that arises with recordings of interactive media programs is the difficulty in determining the amount of resources needed to handle interaction events. Once a program is recorded, user interaction with the media program may occur at any time thereafter. A simple solution to resource allocation would be to assign a fixed amount of resources (i.e., interaction servers) for each interactive media program. However, this method may not result in the most efficient use of resources. It is likely that the number of users viewing a particular interactive media program will vary over time. The static allocation of resources implies that the allocated resources must be sufficient to meet the highest expected demand. Thus, when the demand for a particular interactive media program is low, the resources allocated for that interactive media program will be unused.

SUMMARY

The present invention relates to an interaction media system for delivering interactive media programs, such as video programs, to users. In one exemplary embodiment, user interactions with an interactive media program are defined by an interaction document, such as a SMIL document, that may be downloaded by a user before playing or viewing of the associated media program. The interaction document includes a timeline for triggering interaction events based on the run-time of the associated media program and is synchronized with the media program. When an interaction event is triggered, an overlaid browser may be displayed to the user and user input or responses may be captured and sent to an interaction server. The interaction document may be triggered by the playback of the media program.

Another aspect of the invention relates to a method for dimensioning interaction servers and other resources dynamically to ensure that sufficient resources for user interactions are available at any given time while minimizing unused resource allocations as much as possible. In one exemplary embodiment, a dimensioning server predicts the likelihood of user interaction with events at any given time based on the number of downloads of interaction documents and the categories of the media programs. The computed likelihood is then used to allocate resources to handle the expected user interactions. For example, interaction events may be given weights depending on the cost of resources needed to handle the interaction events. The resource allocations may be determined based on the event likelihoods and the event weights. Events with higher likelihoods and higher weights would require greater resources allocations, while events with low likelihoods and low weights would require e fewer resources.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a communication system for providing interactive media content to users.

FIG. 2 illustrates an exemplary dimensioning system for dimensioning and allocating resources to handle interaction events.

FIG. 3 illustrates an exemplary method for dimensioning interaction servers and other resources for user interaction.

FIG. 4 illustrates an exemplary dimensioning server.

DETAILED DESCRIPTION

FIG. 1 illustrates a communication system 10 for providing interactive media content to users. Communication system 10 comprises an interactive media system 20 operated by a content provider (e.g., broadcast company) or service provider, and a media playback system 40 to enable a user to access and play media content from the content provider's media library. Interactive media programs can be distributed in a variety of different electronic media over a variety of communication networks, such as broadcast networks, mobile networks, Internet Protocol (IP) networks, or some combination thereof.

The interactive media system 20 includes one or more media servers 22 for storing media content that is available to users, one or more document servers 24 for storing interaction documents that define interaction events associated with the media content, and one or more interaction server 26 for handling the interaction events. The media content stored by the media server(s) 22 may be any type of media, such as video content, audio content, audio/video content, or other streaming media. The interaction documents stored in the document server(s) 24 define interaction events associated with the media content. As will be hereinafter described, the interaction documents comprise scripts that are synchronized with the media content to generate interaction events at predetermined points during the playback of the media content. The interaction documents may comprise, for example, SMIL documents, XML documents, etc. The interaction server 26 comprises a server, such as a web server, configured to handle or process interaction events. The interaction server 26 receives user input and responses from the media playback system 40. In some embodiments, the interaction server(s) 26 may also communicate with the media server(s) 22 in systems where user interaction is used to affect the media content.

The media playback system 40 comprises a display 42, a media player 44, a browser 46, a cache 48, a sound system 50 to render media content to the user, and one or more user input controls 54 to input user responses. The browser 46 and cache 48 may be part of a web server 52. The display 42 and sound system 50 comprise any suitable devices for rendering video and audio content, respectively. The media player 44 comprises software and/or hardware to generate media streams rendered by the display 42 and sound system 50, respectively. For example, the media player 44 may implement decompression algorithms to decompress media streams to generate output data streams that are suitable for rendering by display 42 and/or sound system 50. In a preferred embodiment, the media player 44 may also record media content for later playback or viewing. The user input controls 54 comprises any type of user input devices, such as keypads, buttons, pointing devices, navigation controls, touch sensitive controls, etc to enable a user to input responses to interaction events. In some embodiments, the display 42 may comprise a touch screen display that also functions as a user input device 54.

Browser 46 is an application in the media playback system 40 through which user interaction takes place. In one exemplary embodiment, user interaction takes place though an overlaid browser window on the display 42 of the media playback system 40, and user input and responses may be captured by associated Javascripts or other types of scripts. The browser 46 generates interaction events for a particular media program based on the associated interaction document, captures user inputs and responses, and sends the user input and responses to the interaction server 26. As an example of user interaction with media content, the interactive program may incorporate viewer polls or questions. The interaction document that defines the interaction events and the associated scripts are stored in cache 48. The interaction document defines a timeline for the interaction events which is synchronized with the media content. Thus, the interaction events are not tied to triggers in the media stream. The media player 44 may trigger the interaction document when playback of the media content begins. In one exemplary embodiment, a Uniform Resource Identifier (URI) may be embedded at the beginning of the media stream that identifies the corresponding interaction document. The media player 44 captures the URI when the media stream is initiated and triggers the interaction document.

The interaction document may be downloaded from the document server 24 at any time prior to viewing or rendering of the media content, and held in cache 48 until required for viewing. The document server 24 may, for example, comprise a web server that provides the user with an interface for downloading interaction documents. The document server 24 may allow the user to set-up periodic downloads for frequently watched programs, such as frequently watched game shows, so that the interaction documents are available when needed. The user may, in some embodiments, subscribe to a service where interaction documents are downloaded automatically to cache 48 of the media playback system 40 based on user specified preference or observed viewing patterns. The media playback system 40 may also be configured to automatically download interaction documents whenever a media program is recorded so that the interaction document is available when the user subsequently views the program.

Because the interaction document may be downloaded in advance of viewing, a mechanism is needed to ensure the freshness of the interaction document. For example, when the interaction document is triggered, the download time may be compared to the current time to determine an age of the interaction document. Thus, in one exemplary embodiment, the browser functionality may be part of a full-fledged web server 52 that also manages the cache 48. In this embodiment, HTTP POST and PUT operations are enabled thereby allowing third party providers to pre-provision the cache 48 and provide updates to previously-downloaded interaction documents.

In the case of live events that are recorded by the user for later viewing, the interactions that may have taken place during the original transmission of the event may no longer be valid. As one example, a talent show that is broadcast live may include interaction events that allow the users to vote for their favorite performers. As another example, a talk show may allow users to submit questions to the host of the show. These types of interaction events may not be valid after the original transmission and may frustrate or annoy users that attempt to interact when the recorded version of the show is viewed. In this case, two different interaction documents may be defined: a real-time version for use during the original transmission and an asynchronous version for recording and subsequent viewing of the original transmission. The real-time version of the interaction document in the cache 48 of the media playback system 40 may be replaced by an asynchronous version of the interaction document after the original transmission.

In one exemplary embodiment, the Session Initiation Protocol (SIP) subscription method may be used to update interaction documents stored in cache 48 of the media playback system 40. When a user records a live event, the media playback system 40 may use the SIP subscription method to subscribe to update notifications from the document server. When the interaction document is updated, the document server 24 may send a SIP notification message to the media playback system 40. The media playback system 40 may then retrieve the updated interaction document from the document server 24. If a web server 52 is implemented by the media playback system 40, the document server 24 may keep a record of downloads for each user and use standard HTTP POST and PUT operations to upload the revised interaction documents to the cache 48 of the media playback system 40 as they become available without user intervention.

In the interactive media system 20 described above, interaction events may occur at any time, not only during the original transmission of a live event. Interaction servers 26 and other resources needed to handle the interaction events need to be allocated. For certain types of events, the interaction server(s) 26 may be as simple as a web server to receive requests and a database server to log user responses. In other scenarios, the user interaction may be more complicated. A simple solution to resource allocation would be to assign a fixed amount of resources (e.g., interaction servers) for each interactive media program. However, this method may not result in the most efficient use of resources. It is likely that the number of users viewing a particular interactive media program will vary over time. The static allocation of resources implies that the allocated resources must be sufficient to meet the highest expected demand. Thus, when the demand for a particular interactive media program is low, the resources allocated for that interactive media program will be unused.

According to the present invention, interaction servers 26 and other resources needed for user interactions may be allocated dynamically, taking into account other events and circumstances that may affect the viewing of the interactive media content. A predictive algorithm is used to predict the likelihood of interactive events. The interactive media programs are assigned to categories. The events likelihoods for the interactive media programs are determined based on the categories of the interactive media programs and the number of downloads of interaction documents. The computation of event likelihoods may take into account historical usage patterns (e.g., known occurrences of interactions in particular categories), scheduled events that may affect the viewing, time of year or time of day, and any other information relevant to user interactions. Once event likelihoods are determined, resources may be dimensioned and allocated to handle or process the interaction events. In determining the allocation of resources, interaction events may be weighted, depending on the amount of resources required to handle the event. The allocation method for allocating interactive resources makes more efficient use of interaction resources by avoiding static allocation of resources that will be unused when the user demand is low. The present invention allows those interaction resources to be re-allocated to other programs.

FIG. 2 illustrates an exemplary dimensioning system 60 for dimensioning and allocating resources to handle interaction events. Dimensioning system 60 comprises a dimensioning server 62 to perform dimensioning and allocation of server resources to handle interaction events, an event database 64 to store a list of external events that may affect viewing of the interactive media programs, and a categorization server 66 to assign interactive media programs and events to categories. Although shown separately, the function of the categorization server 66 may be incorporated into the dimensioning server 62. The dimensioning server 62 determines which interaction servers 26 and other interactions resources to allocate to the media programs and sends a notification message to the interaction server 26 or to some other server that configures the interaction servers 26.

The dimensioning server 62 collects information from other sources and performs the dimensioning and allocation of server resources. The list of information collected by the dimensioning server 62 may include a list of interactive multimedia programs provided by the media server 22, the number of download requests received by the document server 24, category assignments for the interactive multimedia programs from the categorization server 66, and a list of events from the event database 64. The event list in the event database 64 may include other scheduled programming provided by the service provider or third parties, and other scheduled events such as live sporting events, live concerts, etc., that may affect viewing of interactive media programs. Information about other scheduled events may be obtained, for example, from an electronic program guide (EPG) maintained by the service provider or other third party content provider. The categorization server 66 categorizes interactive media programs, as well as the external events that may impact viewing of the interactive media programs. Categorizing the external events provides a basis for the dimensioning server 62 to analyze the potential affect of external events on viewing of the interactive media program. For example, a major sporting event, such as a championship game, may have significant impact on interactive sports programs but only negligible impact on interactive cooking programs. Correlations between categories of media programs and categories of events may be determined based on historical viewing patterns and used to adjust the likelihoods of user interactions.

FIG. 3 illustrates an exemplary method for dimensioning interaction servers 26 and other resources for user interaction. To begin the process, the dimensioning server 62 first determines the category of an interactive media program (block 102) and the number of times that the interaction document for the interactive media program has been downloaded (block 104). The number of downloads reflects the user demand for the interactive media program. It may be presumed that an interactive media program having a high number of downloads will generate more interaction events than interactive media programs with a lower number of downloads. The distribution of the downloads over time may also be taken into account. A large number of downloads over a relatively short period of time may indicate a high demand for the interactive video program and, therefore, higher likelihood of interaction events. In determining demand, more recent downloads may be given greater weight than downloads that are more distant in time.

The categories of the interactive media programs are also considered. Interaction events are more likely in certain categories of programs than in others. For example, a game show program is likely to result in a large number of interaction events, particularly if incentives or rewards are offered for user interaction. By contrast, sports programs are less likely to generate interaction events. The known occurrence of interaction events for different categories may be taken into account in determining likelihood of user interactions.

In assessing likelihood of user interaction, external events may also be taken into account. External events may include scheduled programming or live events that may affect viewing of interactive media programs. The predicted impact of the external events may be used to adjust the likelihood of user interaction. In determining the impact of external events on the likelihood of user interactions, the external events may also be assigned to categories that may be compared with categories of the interactive media programs. Based on historical viewing patterns, correlations between categories may be determined and used to predict the impact of one program or event on the viewing of an interactive media program. Events within the same or related categories of an interactive media program may be highly correlated with the demand for the interactive media program, while external events within unrelated categories may have little impact. As one example, the broadcast of a championship game may significantly impact demand for an interactive sports talk show, but have little impact on a cooking show.

The dimensioning server 62 computes likelihoods of user interactions based on the categories and number of download (block 106). Because demand is likely to vary over time, the dimensioning server 62 may generate a time series of likelihoods that users will view a particular interactive media program. For example, the dimensioning server 62 may predict the likelihood over a predetermined period of time, such as a weekly, daily, or hourly basis. In general, shortening the time interval will be more efficient from a resource utilization perspective but at the cost of increased complexity and demand for computational resources at the dimensioning server 62. The determination of event likelihood should be made sufficiently far in advance so that resources may be identified and reserved. For example, the likelihood of user interaction with a particular interactive media program during a given hour of a given day may be determined one day, one week, or one month in advance so that there will be sufficient time to identify and allocate resources to handle the user interaction.

The final steps for the dimensioning server 62 are to determine and allocate resources for the interactive media programs (block 108) and to send allocation notifications to the interaction servers 26 that are being allocated (block 110). The allocation notifications may alternatively be sent to some other server that is responsible for configuring the interaction servers 26. The amount of resources needed will be determined based on the event likelihoods as discussed above and composite weight of events associated with the interactive media program. The number and type of user interactions may be determined from the interaction document. Each event defined by the interaction document may be assigned a weighting factor that reflects the relative cost of the event in monetary terms or in system load. As an example, retrieving a web page may be assigned a low weight, while uploading a Java applet to the user may be assigned a high weight. The rate of all events may be summed or averaged to arrive at a composite weight for the interactive media program. The dimensioning server 62 then allocates resources for the interactive media program depending on the event likelihood, the composite weight of the events, and the type of the events.

FIG. 4 illustrates an exemplary dimensioning server 62 for implementing the method illustrated in FIG. 3. The dimensioning server 62 comprises central processing unit (CPU) 202, memory 204, network interface 206, and optionally a user interface 208. The CPU 202 executes computer programs and instructions stored in memory 204 to carry out the process shown in FIG. 3. Network interface 206, such as an Ethernet interface or Wireless Local Area Network (WLAN) interface, enables communication between the dimensioning server 62 and other devices, such as the media server 22, document server 24, event database 64, and categorization server 66. The user interface 208 may, for example, comprise a keyboard and display to enable an operator to interact with dimensioning server 62. However, those skilled in the art will appreciate that the operator may access the dimensioning server 62 remotely via the network interface 206 so that a user interface 208 is not necessary.

The present invention may, of course, be carried out in other specific ways than those herein set forth without departing from the scope and essential characteristics of the invention. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein. 

1-22. (canceled)
 23. A method for a dynamic allocation of resources for interactive media programs including one or more user interactive events, said method comprising a dimensioning server performing the steps of: determining a number of download requests associated with each of said interactive media programs; determining media categories, by assigning a media program to a category, for each of said interactive media programs; determining event likelihoods based at least in part on the media category and on the number of download requests for said interactive media programs, said event likelihoods indicating likelihoods of user interactive events; and allocating one or more resources, based on said determined event likelihoods, to handle said user interactive events.
 24. The method of claim 23, wherein determining the number of requests associated with said interactive media programs comprises determining the number of requests for interaction documents associated with said interactive media programs.
 25. The method of claim 23, wherein determining event likelihoods comprises determining said event likelihoods based on a history of usage in respective media categories.
 26. The method of claim 25, wherein determining event likelihoods comprises adjusting event likelihoods based on one or more external events.
 27. The method of claim 26, wherein said external events comprise scheduled events and wherein adjusting event likelihoods comprises adjusting event likelihoods based on a pre-existing event schedule.
 28. The method of claim 26, wherein adjusting event likelihoods comprises determining event likelihoods based on comparisons between said media categories for said user interactive media programs and corresponding event categories for said external events.
 29. The method of claim 23, wherein determining event likelihoods comprises determining event likelihoods for selected events in individual media programs.
 30. The method of claim 23, wherein determining event likelihoods comprises determining aggregate event likelihoods for individual media programs.
 31. The method of claim 23, wherein determining event likelihoods comprises determining aggregate event likelihoods for media categories.
 32. The method of claim 23, wherein dimensioning one or more interaction resources based on said event likelihoods comprises determining weights for said event likelihoods and allocating resources based on said event likelihoods and said weights.
 33. A system for a dynamic allocation of resources for user interactive media programs including one or more user interactive events, said system comprising a dimensioning server including a processor configured to: determine a number of download requests associated with each of said user interactive media programs; determine media categories, by assigning a media program to a category, for each of said user interactive media programs; determine event likelihoods based at least in part on the media categories and on the number of download requests for said user interactive media programs, said event likelihoods indicating likelihoods of user interactive events; and allocate one or more resources, based on said determined event likelihoods, to handle said user interactive events.
 34. The system of claim 33, wherein said processor is configured to determine the number of requests associated with said user interactive media programs by determining the number of requests for interaction documents associated with said user interactive media programs.
 35. The system of claim 33, wherein said processor is configured to determine event likelihoods by determining said event likelihoods based on a history of usage in respective media categories.
 36. The system of claim 35, wherein said processor is configured to determine event likelihoods by adjusting event likelihoods based on one or more external events.
 37. The system of claim 36, wherein said external events comprise scheduled events and wherein said processor is configured to adjust event likelihoods by adjusting event likelihoods based on a pre-existing event schedule.
 38. The system of claim 36, wherein said processor is configured to adjust event likelihoods by determining event likelihoods based on comparisons between said media categories for said user interactive media programs and corresponding event categories for said external events.
 39. The system of claim 33, wherein said processor is configured to determine event likelihoods for selected events in individual media programs.
 40. The system of claim 33, wherein said processor is configured to determine event likelihoods for individual media programs.
 41. The system of claim 33, wherein said processor is configured to determine aggregate event likelihoods for media categories.
 42. The system of claim 33, wherein said processor is configured to allocate one or more interaction resources by determining weights for said event likelihoods and allocating resources based on said event likelihoods and said weights.
 43. The system of claim 33, further comprising an event database for storing information about external events that may impact the likelihood of interaction events and for providing event information to said dimensioning server to use in computing said event likelihoods.
 44. The system of claim 33, further comprising a categorization server for assigning a media program to a category, and providing information to said dimensioning server about the categories of the media programs to use in computing said event likelihoods. 